/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Application;

import Interface.Monde;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;


/**
 * Augmente graduellement la difficulté du jeu à mesure que le joueur progresse.
 * @author Laurent
 */
public class AlgorithmeDeDifficulte {

    int delay =1000;
    Monde monde;
    public int compteur;

    /**
     * Constructeur de l'algorithme.
     * @param monde Monde dans lequel il est créé.
     */
    public AlgorithmeDeDifficulte(final Monde monde) {
        this.monde = monde;
    }
    
    /**
     * Appelé au début d'une partie. Démarre le processus d'augmentation de la difficulté.
     */

    public void start() {       
      

        
        tmrAlgoDifficulte.start();
        
    }


    /**
     * Augmente graduellement la fréquence d'apparition des ennemis et diminue 
     * celle des power-ups.
     */
    Timer tmrAlgoDifficulte = new Timer(1000, new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            if(monde.frequenceOvni>=3) {
            monde.frequenceOvni--;
            } if(monde.frequenceBibitte>=3) {
            monde.frequenceBibitte--;
            } if(monde.frequenceSuperOvni>=3) {
            monde.frequenceSuperOvni--;
            }

            compteur++;
            if(compteur%25==0&&monde.moduloPowerUp<10){
                monde.moduloPowerUp++;
        }



        }
    });
    /**
     * 
     * @return Renvoit le niveau de difficulté string
     */
    public String getNiveauDeDifficulte() {
        if(compteur<20) {
            return "Grasse matinée";
        } else if(compteur<40) {
            return "Garderie";
        }  else if(compteur<60) {
            return "Gentil";
        } else if(compteur<80) {
            return "Coquin";
        } else if(compteur<100) {
            return "Moins gentil";
        } else if(compteur<120) {
            return "Moyennement violent";
        } else if(compteur<140) {
            return "Violence";
        } else if(compteur<160) {
            return "Génuflexion perpetuelle";
        } else if(compteur<180) {
            return "GG";
        } else {
            return "HACKER";
        }
    }
    /**
     *
     * @return Renvoit le niveau de difficulté string
     */
    public int getCompteur() {
        return compteur;
    }

    public void setCompteur(int compteur) {
        this.compteur = compteur;
    }
}